\begin{figure}[h!]
  \centering
    \includegraphics[width=\textwidth]{flow}
    \caption{Diagrama de flujo de la herramienta.}
    \label{fig:flow}
\end{figure}

La versión actual del prototipo se ejecuta mediante línea de comandos. En el diagrama de flujo de la figura 
\ref{fig:flow}, se observan dos componentes de la herramienta que conforman el núcleo de la misma. Por un lado, tenemos
la estructura Software queda soporte a la representación de las tareas, recursos y restricciones que componen el
modelo de restricciones de una instancia de un problema concreto. Esta estructura está diseñada para ser 
fácilmente extensible, y poder incorporar nuevos tipos elementos en el modelo de forma sencilla. Por otro lado,
tenemos el script en lenguaje Minizinc \cite{MiniZinc}. Este script contiene la representación de los 
componentes del modelo en formato MiniZinc. Se ha desarrollado este script de forma que sea independiente de
los datos concretos que componen el modelo. Así, el script permanecerá estático, y será alimentado 
por un fichero de datos que será el resultado de traducir la estructura interna de la herramienta.

El flujo de ejecucíon sería, a la vista de la figura \ref{fig:flow}:

\begin{enumerate}
 \item Definición de un fichero XML con el modelo de restricciones de una instancia de problema de planificación.
 \item Traducción del fichero XML a una estructura Software interna de la herramienta.
 \item Generación del fichero de datos MiniZinc que alimentarán el script mediante el recorrido y traducción 
de la estructura interna de la herramienta.
  \item Ejecución del script MiniZinc y el fichero de datos generado sobre un resolutor de restricciones para 
 obtener las soluciones de planificación.
\end{enumerate}

Tras esta descripción general, en los puntos siguientes, describiremos con mayor detalle cada uno de los 
módulos de la herramienta, y finalmente se expondrá un ejemplo de ejecución.